<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vue2实战</title>
    <style>
      .item {
        color: red;
        list-style-type: "自定义组件：";
      }
    </style>
  </head>
  <body>
    <div id="app">
      <!-- {{}} vue的插值语法-->
      <h1>{{msg}}</h1>
      <div>
        <input type="text" v-model="info" />
        <button @click="handleClick">添加</button>
      </div>
      <ul>
        <li v-for="item in list">{{item}}</li>
      </ul>
      <ul>
        <todo-item v-for="item in list" :item="item"></todo-item>
      </ul>
      <div>
          <h2>Vue.component 缺点：</h2>
          <p v-for="item in list1">{{item}}</p>
      </div>
    </div>
    <script src="js/vue.js"></script>
    <script>
      // 自定义组件
      Vue.component("todo-item", {
        props: ["item"],
        template: '<li class="item">{{item}}</li>',
      });
      //   初始化vue实例
      new Vue({
        el: "#app", //将id为app的元素实例化
        data() {
          return {
            msg: "hello geektime",
            info: "",
            list: [],
            list1:[
                '全局定义：强制要求每一个component中的命名不得重复',
                '字符串模板：缺乏语法高亮,在多行html中需要用 \ ',
                '不支持css：意味着HTML 和 js组件化时，css明显被遗漏',
                '没有构建步骤：限制只能使用HTML和ES5,不能使用预处理器，如pug(formerly jade) 和 babel'
            ]
          };
        },
        methods: {
          handleClick() {
            this.list.push(this.info);
            this.info = "";
          },
        },
      });
    </script>
  </body>
</html>
